草庐IT

SQL ALTER TABLE 语句

全部标签

php - 这安全吗? ADOdb 准备语句

我正在使用ADOdb连接到我的MSSQL数据库。我想知道这是否足以防止SQL注入(inject)?我正在使用的准备好的查询是:$db=ADONewConnection('odbc_mssql');$dsn="Driver={SQLServer};Server=SERVNAME;Database=DBNAME;";$ADODB_COUNTRECS=false;$db->Connect($dsn,'LOGIN','PASS');$sql='SELECTlogin,etcFROMusersWHERElogin='.$db->Param('0').'ANDpass='.$db->Param('

PHP MySQLi 准备语句 - SELECT

我的SELECT语法有问题。代码:$stmt=$this->con->prepare("SELECT?FROM`shop_items`WHERE`id`=?");$stmt->bind_param("si",$what,$itemsId);$stmt->execute();$stmt->bind_result($res);$stmt->fetch();echo$res;当我想选择“名称”时,它会回显“名称”而不是来自数据库的结果。如何解决? 最佳答案 占位符?只能在准备语句中用于替换值,不能用于字段名、表名或语句。您正在尝试将其用作

PHP MySQLI 准备好的语句在 get_results() 处中断

我是mysqli准备语句的新手,事实上这是我第一次尝试。我有这段代码,我在每个命令之间放置了echo,它显示aaa和bbb但不显示ccc,我在这里做错了什么?没有出现错误,只是一个空白屏幕:prepare("SELECTtitleFROM`in-the-press`")){$stmt->execute();echo'aaa';$stmt->bind_result($title);echo'bbb';$result=$stmt->get_result();echo'ccc';while($stmt->fetch()){printf("%s%s\n",$title);}echo'ddd';

php - 在 password_hash 值上使用准备好的语句有什么意义吗?

当使用password_hash()函数生成散列密码时,为什么我想在将它插入数据库时​​使用准备好的语句?我的假设是我不需要为密码使用准备好的语句,但为了保持一致性,使用一个也没有坏处。附加问题:如果我使用password_hash函数的PASSWORD_DEFAULT参数,它目前将使用bcrypt算法,但将来可以替换为不同的算法。如果我不使用准备好的语句,future的算法是否会使用单引号或其他可能破坏SQL语句的符号? 最佳答案 isthereanyreasonwhyIwouldwanttouseapreparedstateme

php - 对用户定义函数中的 return 语句感到困惑

我对返回声明几乎没有疑问。a)是否必须在用户定义的函数中定义返回语句?b)如果我只定义一个没有任何参数的return语句,它仍然有效吗?它会返回空值吗?c)下面的函数有效吗?functionadmin_credential($password=0,$email=0){if($password!=0){$password=sha1($password);$query="UPDATEadminsSETpassword='$password'";$result=mysql_query($query);}if($email!=0){$query="UPDATEadminsSETemail='$

php - 在带有 'IN(.....)' 子句的查询中使用准备好的语句?

有没有(棘手的/非标准的)方法来做到这一点?想要什么$stmt=$db->prepare('SELECTtitleFROMepisodeWHEREidIN(?,?,?,?);工作?因此,如果我想搜索可变数量的ID,我可以这样做吗$ids=array(1,2,3,4,5,6,7);$idSection=implode(array_pad(array(),count($ids),'?'))//Togive?,?,?,?,?,?,?$stmt=$db->prepare('SELECTtitleFROMepisodeWHEREidIN($idSection);$stmp->execute($i

PHP Postgres PDO 驱动不支持预处理语句?

我是不是疯了,还是PostgresPDO驱动程序不支持准备好的语句,而是在客户端模拟它们?以下代码为prepare()调用返回NOERROR,即使它应该返回。相反,它会在调用execute()时返回适用的错误。编辑:根据DanielVérité的说法,我错了,我添加了他建议的代码。我仍然得到错误。我的代码现在如下所示,添加了Daniel的行。setAttribute(PDO::ATTR_EMULATE_PREPARES,false);//assuggestedbyDaniel$sth=$pdo->prepare('COMPLETEGARBAGE');echo"[prepare]erro

php - 在 MySQLi 准备好的语句中,STMT 代表什么?

MySQLi准备好的语句使用变量$stmt但我找不到STMT代表什么或为什么使用它。对于其他变量(例如$query和$results),我一直很理解,我只是想知道,为什么$stmt,它背后的历史是什么? 最佳答案 $stmt表示单词$statement。越短越好:D 关于php-在MySQLi准备好的语句中,STMT代表什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/217

php - if ( $a == $b || $a == $c ) 语句的速记表达式

我知道这段代码可以工作:echo($a==$b||$a==$c)?"Yes":"No";可以这样读:if$aisequalto$bor$aisequalto$c有没有办法让它更短,比如:if$aisequalto$bor$c我已经尝试了很多,包括这个,但仍然没有运气:echo($a==($bxor$c))?"Yes":"No"; 最佳答案 您可以使用in_array:var_dump(in_array($a,[$b,$c]));以你的例子:echoin_array($a,[$b,$c])?'Yes':'No';注意:此语法仅在您有超

带有 continue 关键字的 PHP 简短 if 语句并提交 else 部分

我有一个for循环for($x=1;$x现在执行时出现错误PHPParseerror:syntaxerror,unexpected'continue'(T_CONTINUE)in/var/www/html/all.phponline21现在,这留给我两个问题:我可以在简短的if语句中使用continue关键字吗?对于短if的else部分,是否可以使用二进制值,如true或false,如果不能,那么如果我对else部分无事可做,我该如何使用短if语句。 最佳答案 continue是一个语句(如for或if)并且必须独立出现。它不能用作